Fusion of Concurrent Invocations of Exclusive Methods
نویسندگان
چکیده
This paper describes a mechanism for “fusing” concurrent invocations of exclusive methods. The target of our work is object-oriented languages with concurrent extensions. In the languages, concurrent invocations of exclusive methods are serialized; only one invocation executes immediately and the others wait for their turn. The mechanism fuses multiple waiting invocations to a cheaper operation such as a single invocation. The programmers describe fusion rules, which specify method invocations that can be fused and an operation that substitutes for the invocations. The mechanism works effectively in the execution in synchronization bottlenecks, which are objects on which exclusive methods wait a long time for their turn. We have implemented a language that has the mechanism and tested the usefulness of the mechanism through experiments on a symmetric multiprocessor, the Sun Enterprise 10000. We have confirmed that the mechanism made programs with synchronization bottlenecks fast.
منابع مشابه
An Exception Handling Mechanism for the Concurrent Invocation Statement
Several concurrent programming languages and systems — e.g., MPI, .NET, and SR — provide mechanisms to facilitate communication between one process and a group of others. One such mechanism is SR’s concurrent invocation statement (co statement). It specifies a group of operation invocations and normally terminates when all of its invocations have completed. To make the co statement more flexibl...
متن کاملCYES-C++: A Concurrent Extension of C++ through Compositional Mechanisms
This paper describes a concurrent extension of the C++ programming language[1]. The extended C++ language, which we call CYES-C++, supports highly concurrent objects, implements a general concurrent method invocation mechanism, fully integrates the notion of inheritance with concurrency, and supports reusability of both method and synchronization specifications. The computational model [4] for ...
متن کاملRun - Time Analysis for Atomicity 1
Writing and debugging concurrent (shared-variable) programs is notoriously difficult. This motivated the development of numerous static analysis and run-time analysis techniques designed to (help) ensure that concurrent programs satisfy common correctness requirements for concurrent programs, such as absence of race conditions and absence of deadlocks. This paper focuses on another common corre...
متن کاملVerification of a Concurrent Deque Implementation
We prove the correctness of the concurrent deque component of a recent implementation of the work-stealing algorithm. Specifically, we prove that this concurrent deque implementation is synchronizable. Synchronizability is a weaker condition than the more traditional notion of serializability. Our concurrent deque implementation is not serializable, but its synchronizability makes it sufficient...
متن کاملOpen Effects: Programmer-guided Effects for Open World Concurrent Programs
The open world assumption makes the design of a type-and-effect system challenging, especially in concurrent object-oriented languages. The main problem is in the computation of the effects of a dynamically dispatched method invocation, because all possible dynamic types of its receiver are not known statically. Previous work proposes effect annotations that provide a static upper bound on the ...
متن کامل